home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / IDimager Personal 4.2.0.3 / setup_IDimager_Personal_V4.exe / {app} / web / handleregister.psc < prev    next >
Text File  |  2008-07-28  |  4KB  |  146 lines

  1. <html>
  2.  
  3. <head>
  4.   <title>Register</title>
  5.  
  6.   <link rel="stylesheet" href="idimager.css" type="text/css"/>
  7.  
  8.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  9.  
  10.   %include api.inc %/include
  11.  
  12.   <style>
  13.     %include idimager.css %/include
  14.   </style>
  15.  
  16. </head>
  17.  
  18.  
  19. <body>
  20.  
  21. %code
  22.  
  23. function FullHomePageOffset: WideString;
  24. begin
  25.   result := StrTran('%var:Homepage', '\', '/');
  26.  
  27.   if Rightstr(result, 1) = '/' then
  28.     result := LeftStr(result, Length(result) - 1);
  29.  
  30.   result := result + ':%var:ServerPort';
  31.   if Trim('%var:PageOffset') <> '' then
  32.     result := result + '%var:PageOffset';
  33.  
  34.   if RightStr (result, 1) <> '/' then
  35.     result := result + '/';
  36. end;
  37.  
  38. var
  39.   ADs: TDBXOMClientDataSet;
  40.   AError: String;
  41. begin
  42.   if (Request.Params.Values['dfPassword'] = '') or (Request.Params.Values['dfPassword2'] = '') then
  43.   begin
  44.     Response.Redirect ('%var:PageOffset/register.psc?Help=Please%20enter%20a%20password');
  45.     exit;
  46.   end;
  47.  
  48.   if (Request.Params.Values['dfPassword'] <> Request.Params.Values['dfPassword2']) then
  49.   begin
  50.     Response.Redirect ('%var:PageOffset/register.psc?Help=The%20repeated%20password%20does%20not%20match%20the%20first%20password');
  51.     exit;
  52.   end;
  53.  
  54.   if (Request.Params.Values['dfName'] = '') then
  55.   begin
  56.     Response.Redirect ('%var:PageOffset/register.psc?Help=Please%20enter%20your%20full%20name');
  57.     exit;
  58.   end;
  59.  
  60.   if Length(Request.Params.Values['dfUserName']) < 5 then
  61.   begin
  62.     Response.Redirect ('%var:PageOffset/register.psc?Help=The%20user%20name%20should%20be%20at%20least%205%20characters');
  63.     exit;
  64.   end;
  65.  
  66.   if (Length(Request.Params.Values['dfEmail']) = 0) or 
  67.      (Pos('@', Request.Params.Values['dfEmail']) = 0) or
  68.      (Pos('.', Request.Params.Values['dfEmail']) = 0) 
  69.   then
  70.   begin
  71.     Response.Redirect ('%var:PageOffset/register.psc?Help=Please%20specify%20a%20valid%20email%20address');
  72.     exit;
  73.   end;
  74.  
  75.   ADs := Catalog.NewDataSet;
  76.  
  77.   ADs.CommandText := 'select * from idUser where idUserName = ''' + Request.Params.Values['dfUserName'] + ''' ';
  78.   ADs.Open;
  79.  
  80.   if (not ADs.Eof) then
  81.   begin
  82.     result := 'This username is already registered. If you didn''t receive a confirmation yet, then please wait for at least 48 hours.';
  83.   end
  84.   else
  85.   begin
  86.     // create the user record
  87.     ADs.Insert;
  88.  
  89.     ADs.FieldByName('GUID').Value := NewGUID;
  90.     ADs.FieldByName('idUserName').Value   := Request.Params.Values['dfUserName'];
  91.     ADs.FieldByName('idPassword').Value   := MD5(Request.Params.Values['dfPassword'], '');
  92.     ADs.FieldByName('FullUserName').Value := Request.Params.Values['dfName'];
  93.     ADs.FieldByName('EMailAddress').Value := Request.Params.Values['dfEMail'];
  94.     ADs.FieldByName('idUserType').Value   := 'WEB';
  95.  
  96.     // set as disabled so the administrator can validate the new user
  97.     ADs.FieldByName('idProtected').Value  := 1;
  98.  
  99.     Result := 'An e-mail is being delivered to ' + Request.Params.Values['dfEMail'];
  100.  
  101.     AError := SendShortEMail (
  102.                     '%var:SMTPHost',
  103.                     '%var:AdminEMail',
  104.                     Request.Params.Values['dfEMail'],
  105.                     '',
  106.                     '',
  107.                     'Your registration at %var:Homepage',
  108.                     'Thank you for registering at <b>%var:Homepage</b><p>Your access request will be evaluated a.s.a.p.</p><p>Kind regards</p>'
  109.                     );
  110.  
  111.     if AError <> '' then
  112.       result := result + '<p>ERROR: ' + AError
  113.     else
  114.     begin
  115.       // send a message to the administrator for evaluating the request
  116.  
  117.       AError := SendShortEMail (
  118.                     '%var:SMTPHost',
  119.                     '%var:AdminEMail',
  120.                     '%var:AdminEMail',
  121.                     '',
  122.                     '',
  123.                     Request.Params.Values['dfName'] + ' requests access to %var:Homepage',
  124.                     'Hello,<p>' + 
  125.             Request.Params.Values['dfName'] + ' requests access to %var:Homepage. The supplied reason is<p>' +
  126.             '<hr>' + Request.Params.Values['mmWhoAreYou'] + '<hr></p>' + 
  127.             '<p>Click <a href="' + FullHomePageOffset + 'validateregister.psc?GUID=' + ADs.FieldByName('GUID').Value + '">here</a> to validate the request'
  128.                     );
  129.  
  130.     end;
  131.  
  132.     if AError = '' then
  133.       ADs.UpdateBatch ('idUser', 'GUID', arAll);
  134.   end;
  135.  
  136.   ADs.Close;
  137.   ADs.Free;
  138. end;
  139.  
  140. %/code
  141.  
  142.  
  143. </body>
  144.  
  145. </html>
  146.